2. 데이터 전송 기초2
1. IP 주소 (Internet Protocol Address)
IP 주소의 탄생 배경
초기 컴퓨터 네트워크는 물리적 직접 연결 방식을 사용했지만, 네트워크 확장과 함께 한계 드러남
문제점:
- 모든 컴퓨터 간 직접 연결 불가능
- 멀리 떨어진 장치 간 통신 경로 찾기 어려움
- 서로 다른 네트워크 간 연결 방법 부재
→ 논리적 주소 체계인 IP 주소 도입으로 해결
IPv4와 IPv6 구조
IPv4 (32비트)
192.168.1.1
┌─────┬─────┬─────┬─────┐
│ 192 │ 168 │ 1 │ 1 │
│8비트│8비트│8비트│8비트│
└─────┴─────┴─────┴─────┘
총 43억개 주소 표현 가능
IPv6 (128비트)
2001:0db8:85a3::8a2e:0370:7334
128비트 = 3.4 × 10³⁸개 주소
주소 체계 분류
IP 주소 구조:
IP 주소
├── 글로벌 IP
│ └── 인터넷에서 사용, 전세계 고유
└── 프라이빗 IP
└── LAN 내부 사용, 중복 허용
NAT 라우터
└── 하나의 글로벌 IP로 여러 프라이빗 IP 관리
프라이빗 IP 도입 이유:
- IPv4 주소 고갈 문제 완화
- 보안성 향상 (외부에서 직접 접근 불가)
- 네트워크 관리 효율성 증대
2. MAC 주소 (Media Access Control Address)
MAC 주소 구조와 설계 이유
MAC 주소 (48비트)
┌─────────────────┬─────────────────┐
│ 벤더 코드 │ 시리얼 번호 │
│ (상위 24비트) │ (하위 24비트) │
│ 제조사 식별 │ 기기별 고유번호 │
└─────────────────┴─────────────────┘
48비트 선택 이유 (1980년 IEEE 결정):
- 벤더 24비트: 1,600만 개 제조사 식별 가능
- 시리얼 24비트: 제조사당 1,600만 개 기기 할당 가능
- 총 280조 개 주소로 충분한 확장성 확보
계층별 식별자 비교
| 구분 | MAC 주소 | IP 주소 |
|---|---|---|
| 계층 | 2계층 (데이터링크) | 3계층 (네트워크) |
| 범위 | 물리적 기기 식별 | 논리적 네트워크 위치 |
| 변경성 | 하드웨어 고정 | 동적 변경 가능 |
| 관리 | IEEE (분산 관리) | IANA (중앙 관리) |
하드웨어 고정 방식의 장점:
- 전 세계적 유일성 보장
- 네트워크 무결성 유지
- 기기 추적 및 보안 제어 가능
3. ARP (Address Resolution Protocol)
ARP의 필요성 - 계층 간 격차 해결
근본 문제:
- 애플리케이션: IP 주소만 알고 있음
- 이더넷: MAC 주소 필요함
ARP 동작 과정:
1. 컴퓨터 A → 네트워크 (브로드캐스트)
"IP 192.168.1.100의 MAC은?"
2. 네트워크 → 컴퓨터 B
ARP 요청 전달
3. 컴퓨터 B → 컴퓨터 A (응답)
"내 MAC: AA:BB:CC:DD:EE:FF"
4. 컴퓨터 A
ARP 캐시에 저장, 재사용으로 효율성 향상
ARP 동작 방식과 최적화
브로드캐스트 방식 선택 이유:
- 중앙 서버 방식: 단일 실패점 문제
- 수동 설정: 관리 복잡성 증가
- 브로드캐스트: 자동화된 분산 해결책
효율성 개선 방법:
- ARP 캐시를 통한 재사용
- 타임아웃으로 오래된 정보 자동 삭제
- 주소 테이블을 라우터에서 중앙 관리
4. 포트 번호 (Port Number)
포트 번호의 역할과 구조
16비트 (0~65535) 선택 배경:
- 8비트(256개): 서비스 종류에 비해 부족
- 32비트(43억개): 메모리 낭비 및 처리 부담
- 16비트: 적절한 타협점으로 충분한 확장성
포트 번호 체계:
포트 번호 65536개
├── Well-Known (0-1023)
│ └── 시스템 서비스 (HTTP:80, HTTPS:443)
├── Registered (1024-49151)
│ └── 특정 애플리케이션 (MySQL:3306)
└── Dynamic (49152-65535)
└── 임시 연결, 클라이언트 포트
Well-Known 포트 (0-1023) 설계 철학
UNIX 보안 모델 기반:
- 1024 미만: 관리자 권한 필요 (시스템 서비스)
- 1024 이상: 일반 사용자 허용 (사용자 애플리케이션)
주요 서비스 포트:
- HTTP: 80, HTTPS: 443 (웹 서비스)
- FTP: 21, SSH: 22 (파일 전송, 보안 접속)
- DNS: 53, SMTP: 25 (도메인 서비스, 이메일)
5. 통신 방식 진화: 회선 교환 → 패킷 교환
회선 교환 방식 (Circuit Switching)
전화 시스템 기반 원리:
전화기 A → 교환대 1 → 교환대 2 → 전화기 B
(전용 회선 설정)
특징 및 한계:
- ✅ 안정적 통신 품질, 일정한 지연시간
- ❌ 회선 효율성 낮음, 확장성 부족, 장애 취약성
패킷 교환 방식 (Packet Switching)
Paul Baran의 핵심 통찰 (1960년대):
"메시지를 작은 조각으로 분할하여 독립 전송하면 경로 장애 시 자동 우회 가능"
패킷 교환 과정:
원본 데이터
↓
패킷 분할
├── 패킷 1 - 경로 A ─┐
├── 패킷 2 - 경로 B ─┼→ 목적지
└── 패킷 3 - 경로 C ─┘
↓
데이터 재조립
패킷 교환의 혁신성:
- 내결함성: 일부 경로 장애 시 자동 우회
- 효율성: 회선 공유로 자원 활용도 극대화
- 확장성: 새로운 노드 및 경로 추가 용이
통신 과정 종합 정리
데이터 전송 흐름:
1. 애플리케이션
↓
2. 포트 지정 (HTTP:80)
↓
3. IP 계층
↓
4. 목적지 IP 주소 (8.8.8.8)
↓
5. 라우팅 판단
↓
6. 게이트웨이 필요 (192.168.1.1)
↓
7. ARP로 게이트웨이 MAC 주소 확인
↓
8. 패킷 생성
- IP 목적지: 8.8.8.8
- MAC 목적지: 게이트웨이
↓
9. 네트워크 전송
↓
10. 라우터들의 패킷 교환
↓
11. 목적지 도달
↓
12. 패킷 재조립